package modulos.pessoa.dao;

import java.util.List;

import modulos.pessoa.entidade.Pessoa;

import org.hibernate.Query;
import org.hibernate.Session;

import persistence.HibernateUtil;
import persistence.ObjetoDAO;
import utils.StringHelper;

public class PessoaDAO extends ObjetoDAO {

	@SuppressWarnings("unchecked")
	public List<Pessoa> pesquisar(Pessoa dadosFiltro) {

		Session session = HibernateUtil.getSessionFactory().openSession();
		List<Pessoa> pessoas = null;
		try {
			session.getTransaction().begin();
			StringBuilder sb = new StringBuilder();
			sb.append("from Pessoa as pes");
			
			if(dadosFiltro!= null && 
					StringHelper.ehBrancoOuNulo(dadosFiltro.getNomeCompleto())){
				sb.append(" where pes.nomeCompleto = :nomeCompleto");
			}
			
			Query q = session.createQuery(sb.toString());
			
			if(dadosFiltro!= null && 
					StringHelper.ehBrancoOuNulo(dadosFiltro.getNomeCompleto())){
				q.setParameter("nomeCompleto", dadosFiltro.getNomeCompleto());
			}
			
			pessoas = (List<Pessoa>) q.list();
		
		} catch (Exception exp) {
			 session.getTransaction().rollback();
			 System.out.println(exp.toString());
		} finally{
			session.close();
		}
		
		return pessoas;
	}
	
}